// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima).
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

/*!
 * @file telemetry_status.h
 * This header file contains the declaration of the described types in the IDL file.
 *
 * This file was generated by the tool gen.
 */

#ifndef _TELEMETRY_STATUS_H_
#define _TELEMETRY_STATUS_H_

// TODO Poner en el contexto.

#include <stdint.h>
#include <array>
#include <string>
#include <vector>
#include <map>
#include <bitset>

#if defined(_WIN32)
#if defined(EPROSIMA_USER_DLL_EXPORT)
#define eProsima_user_DllExport __declspec( dllexport )
#else
#define eProsima_user_DllExport
#endif
#else
#define eProsima_user_DllExport
#endif

#if defined(_WIN32)
#if defined(EPROSIMA_USER_DLL_EXPORT)
#if defined(telemetry_status_SOURCE)
#define telemetry_status_DllAPI __declspec( dllexport )
#else
#define telemetry_status_DllAPI __declspec( dllimport )
#endif // telemetry_status_SOURCE
#else
#define telemetry_status_DllAPI
#endif
#else
#define telemetry_status_DllAPI
#endif // _WIN32

namespace eprosima
{
    namespace fastcdr
    {
        class Cdr;
    }
}


const uint64_t telemetry_status__HEARTBEAT_TIMEOUT_US = 1500000;
const uint8_t telemetry_status__LINK_TYPE_GENERIC = 0;
const uint8_t telemetry_status__LINK_TYPE_UBIQUITY_BULLET = 1;
const uint8_t telemetry_status__LINK_TYPE_WIRE = 2;
const uint8_t telemetry_status__LINK_TYPE_USB = 3;
const uint8_t telemetry_status__LINK_TYPE_IRIDIUM = 4;
/*!
 * @brief This class represents the structure telemetry_status defined by the user in the IDL file.
 * @ingroup TELEMETRY_STATUS
 */
class telemetry_status
{
public:

    /*!
     * @brief Default constructor.
     */
    eProsima_user_DllExport telemetry_status();

    /*!
     * @brief Default destructor.
     */
    eProsima_user_DllExport ~telemetry_status();

    /*!
     * @brief Copy constructor.
     * @param x Reference to the object telemetry_status that will be copied.
     */
    eProsima_user_DllExport telemetry_status(const telemetry_status &x);

    /*!
     * @brief Move constructor.
     * @param x Reference to the object telemetry_status that will be copied.
     */
    eProsima_user_DllExport telemetry_status(telemetry_status &&x);

    /*!
     * @brief Copy assignment.
     * @param x Reference to the object telemetry_status that will be copied.
     */
    eProsima_user_DllExport telemetry_status& operator=(const telemetry_status &x);

    /*!
     * @brief Move assignment.
     * @param x Reference to the object telemetry_status that will be copied.
     */
    eProsima_user_DllExport telemetry_status& operator=(telemetry_status &&x);

    /*!
     * @brief This function sets a value in member timestamp_
     * @param _timestamp_ New value for member timestamp_
     */
    eProsima_user_DllExport void timestamp_(uint64_t _timestamp_);

    /*!
     * @brief This function returns the value of member timestamp_
     * @return Value of member timestamp_
     */
    eProsima_user_DllExport uint64_t timestamp_() const;

    /*!
     * @brief This function returns a reference to member timestamp_
     * @return Reference to member timestamp_
     */
    eProsima_user_DllExport uint64_t& timestamp_();

    /*!
     * @brief This function sets a value in member type_
     * @param _type_ New value for member type_
     */
    eProsima_user_DllExport void type_(uint8_t _type_);

    /*!
     * @brief This function returns the value of member type_
     * @return Value of member type_
     */
    eProsima_user_DllExport uint8_t type_() const;

    /*!
     * @brief This function returns a reference to member type_
     * @return Reference to member type_
     */
    eProsima_user_DllExport uint8_t& type_();

    /*!
     * @brief This function sets a value in member mode_
     * @param _mode_ New value for member mode_
     */
    eProsima_user_DllExport void mode_(uint8_t _mode_);

    /*!
     * @brief This function returns the value of member mode_
     * @return Value of member mode_
     */
    eProsima_user_DllExport uint8_t mode_() const;

    /*!
     * @brief This function returns a reference to member mode_
     * @return Reference to member mode_
     */
    eProsima_user_DllExport uint8_t& mode_();

    /*!
     * @brief This function sets a value in member flow_control_
     * @param _flow_control_ New value for member flow_control_
     */
    eProsima_user_DllExport void flow_control_(bool _flow_control_);

    /*!
     * @brief This function returns the value of member flow_control_
     * @return Value of member flow_control_
     */
    eProsima_user_DllExport bool flow_control_() const;

    /*!
     * @brief This function returns a reference to member flow_control_
     * @return Reference to member flow_control_
     */
    eProsima_user_DllExport bool& flow_control_();

    /*!
     * @brief This function sets a value in member forwarding_
     * @param _forwarding_ New value for member forwarding_
     */
    eProsima_user_DllExport void forwarding_(bool _forwarding_);

    /*!
     * @brief This function returns the value of member forwarding_
     * @return Value of member forwarding_
     */
    eProsima_user_DllExport bool forwarding_() const;

    /*!
     * @brief This function returns a reference to member forwarding_
     * @return Reference to member forwarding_
     */
    eProsima_user_DllExport bool& forwarding_();

    /*!
     * @brief This function sets a value in member mavlink_v2_
     * @param _mavlink_v2_ New value for member mavlink_v2_
     */
    eProsima_user_DllExport void mavlink_v2_(bool _mavlink_v2_);

    /*!
     * @brief This function returns the value of member mavlink_v2_
     * @return Value of member mavlink_v2_
     */
    eProsima_user_DllExport bool mavlink_v2_() const;

    /*!
     * @brief This function returns a reference to member mavlink_v2_
     * @return Reference to member mavlink_v2_
     */
    eProsima_user_DllExport bool& mavlink_v2_();

    /*!
     * @brief This function sets a value in member ftp_
     * @param _ftp_ New value for member ftp_
     */
    eProsima_user_DllExport void ftp_(bool _ftp_);

    /*!
     * @brief This function returns the value of member ftp_
     * @return Value of member ftp_
     */
    eProsima_user_DllExport bool ftp_() const;

    /*!
     * @brief This function returns a reference to member ftp_
     * @return Reference to member ftp_
     */
    eProsima_user_DllExport bool& ftp_();

    /*!
     * @brief This function sets a value in member streams_
     * @param _streams_ New value for member streams_
     */
    eProsima_user_DllExport void streams_(uint8_t _streams_);

    /*!
     * @brief This function returns the value of member streams_
     * @return Value of member streams_
     */
    eProsima_user_DllExport uint8_t streams_() const;

    /*!
     * @brief This function returns a reference to member streams_
     * @return Reference to member streams_
     */
    eProsima_user_DllExport uint8_t& streams_();

    /*!
     * @brief This function sets a value in member data_rate_
     * @param _data_rate_ New value for member data_rate_
     */
    eProsima_user_DllExport void data_rate_(float _data_rate_);

    /*!
     * @brief This function returns the value of member data_rate_
     * @return Value of member data_rate_
     */
    eProsima_user_DllExport float data_rate_() const;

    /*!
     * @brief This function returns a reference to member data_rate_
     * @return Reference to member data_rate_
     */
    eProsima_user_DllExport float& data_rate_();

    /*!
     * @brief This function sets a value in member rate_multiplier_
     * @param _rate_multiplier_ New value for member rate_multiplier_
     */
    eProsima_user_DllExport void rate_multiplier_(float _rate_multiplier_);

    /*!
     * @brief This function returns the value of member rate_multiplier_
     * @return Value of member rate_multiplier_
     */
    eProsima_user_DllExport float rate_multiplier_() const;

    /*!
     * @brief This function returns a reference to member rate_multiplier_
     * @return Reference to member rate_multiplier_
     */
    eProsima_user_DllExport float& rate_multiplier_();

    /*!
     * @brief This function sets a value in member tx_rate_avg_
     * @param _tx_rate_avg_ New value for member tx_rate_avg_
     */
    eProsima_user_DllExport void tx_rate_avg_(float _tx_rate_avg_);

    /*!
     * @brief This function returns the value of member tx_rate_avg_
     * @return Value of member tx_rate_avg_
     */
    eProsima_user_DllExport float tx_rate_avg_() const;

    /*!
     * @brief This function returns a reference to member tx_rate_avg_
     * @return Reference to member tx_rate_avg_
     */
    eProsima_user_DllExport float& tx_rate_avg_();

    /*!
     * @brief This function sets a value in member tx_error_rate_avg_
     * @param _tx_error_rate_avg_ New value for member tx_error_rate_avg_
     */
    eProsima_user_DllExport void tx_error_rate_avg_(float _tx_error_rate_avg_);

    /*!
     * @brief This function returns the value of member tx_error_rate_avg_
     * @return Value of member tx_error_rate_avg_
     */
    eProsima_user_DllExport float tx_error_rate_avg_() const;

    /*!
     * @brief This function returns a reference to member tx_error_rate_avg_
     * @return Reference to member tx_error_rate_avg_
     */
    eProsima_user_DllExport float& tx_error_rate_avg_();

    /*!
     * @brief This function sets a value in member tx_message_count_
     * @param _tx_message_count_ New value for member tx_message_count_
     */
    eProsima_user_DllExport void tx_message_count_(uint32_t _tx_message_count_);

    /*!
     * @brief This function returns the value of member tx_message_count_
     * @return Value of member tx_message_count_
     */
    eProsima_user_DllExport uint32_t tx_message_count_() const;

    /*!
     * @brief This function returns a reference to member tx_message_count_
     * @return Reference to member tx_message_count_
     */
    eProsima_user_DllExport uint32_t& tx_message_count_();

    /*!
     * @brief This function sets a value in member tx_buffer_overruns_
     * @param _tx_buffer_overruns_ New value for member tx_buffer_overruns_
     */
    eProsima_user_DllExport void tx_buffer_overruns_(uint32_t _tx_buffer_overruns_);

    /*!
     * @brief This function returns the value of member tx_buffer_overruns_
     * @return Value of member tx_buffer_overruns_
     */
    eProsima_user_DllExport uint32_t tx_buffer_overruns_() const;

    /*!
     * @brief This function returns a reference to member tx_buffer_overruns_
     * @return Reference to member tx_buffer_overruns_
     */
    eProsima_user_DllExport uint32_t& tx_buffer_overruns_();

    /*!
     * @brief This function sets a value in member rx_rate_avg_
     * @param _rx_rate_avg_ New value for member rx_rate_avg_
     */
    eProsima_user_DllExport void rx_rate_avg_(float _rx_rate_avg_);

    /*!
     * @brief This function returns the value of member rx_rate_avg_
     * @return Value of member rx_rate_avg_
     */
    eProsima_user_DllExport float rx_rate_avg_() const;

    /*!
     * @brief This function returns a reference to member rx_rate_avg_
     * @return Reference to member rx_rate_avg_
     */
    eProsima_user_DllExport float& rx_rate_avg_();

    /*!
     * @brief This function sets a value in member rx_message_count_
     * @param _rx_message_count_ New value for member rx_message_count_
     */
    eProsima_user_DllExport void rx_message_count_(uint32_t _rx_message_count_);

    /*!
     * @brief This function returns the value of member rx_message_count_
     * @return Value of member rx_message_count_
     */
    eProsima_user_DllExport uint32_t rx_message_count_() const;

    /*!
     * @brief This function returns a reference to member rx_message_count_
     * @return Reference to member rx_message_count_
     */
    eProsima_user_DllExport uint32_t& rx_message_count_();

    /*!
     * @brief This function sets a value in member rx_message_lost_count_
     * @param _rx_message_lost_count_ New value for member rx_message_lost_count_
     */
    eProsima_user_DllExport void rx_message_lost_count_(uint32_t _rx_message_lost_count_);

    /*!
     * @brief This function returns the value of member rx_message_lost_count_
     * @return Value of member rx_message_lost_count_
     */
    eProsima_user_DllExport uint32_t rx_message_lost_count_() const;

    /*!
     * @brief This function returns a reference to member rx_message_lost_count_
     * @return Reference to member rx_message_lost_count_
     */
    eProsima_user_DllExport uint32_t& rx_message_lost_count_();

    /*!
     * @brief This function sets a value in member rx_buffer_overruns_
     * @param _rx_buffer_overruns_ New value for member rx_buffer_overruns_
     */
    eProsima_user_DllExport void rx_buffer_overruns_(uint32_t _rx_buffer_overruns_);

    /*!
     * @brief This function returns the value of member rx_buffer_overruns_
     * @return Value of member rx_buffer_overruns_
     */
    eProsima_user_DllExport uint32_t rx_buffer_overruns_() const;

    /*!
     * @brief This function returns a reference to member rx_buffer_overruns_
     * @return Reference to member rx_buffer_overruns_
     */
    eProsima_user_DllExport uint32_t& rx_buffer_overruns_();

    /*!
     * @brief This function sets a value in member rx_parse_errors_
     * @param _rx_parse_errors_ New value for member rx_parse_errors_
     */
    eProsima_user_DllExport void rx_parse_errors_(uint32_t _rx_parse_errors_);

    /*!
     * @brief This function returns the value of member rx_parse_errors_
     * @return Value of member rx_parse_errors_
     */
    eProsima_user_DllExport uint32_t rx_parse_errors_() const;

    /*!
     * @brief This function returns a reference to member rx_parse_errors_
     * @return Reference to member rx_parse_errors_
     */
    eProsima_user_DllExport uint32_t& rx_parse_errors_();

    /*!
     * @brief This function sets a value in member rx_packet_drop_count_
     * @param _rx_packet_drop_count_ New value for member rx_packet_drop_count_
     */
    eProsima_user_DllExport void rx_packet_drop_count_(uint32_t _rx_packet_drop_count_);

    /*!
     * @brief This function returns the value of member rx_packet_drop_count_
     * @return Value of member rx_packet_drop_count_
     */
    eProsima_user_DllExport uint32_t rx_packet_drop_count_() const;

    /*!
     * @brief This function returns a reference to member rx_packet_drop_count_
     * @return Reference to member rx_packet_drop_count_
     */
    eProsima_user_DllExport uint32_t& rx_packet_drop_count_();

    /*!
     * @brief This function sets a value in member rx_message_lost_rate_
     * @param _rx_message_lost_rate_ New value for member rx_message_lost_rate_
     */
    eProsima_user_DllExport void rx_message_lost_rate_(float _rx_message_lost_rate_);

    /*!
     * @brief This function returns the value of member rx_message_lost_rate_
     * @return Value of member rx_message_lost_rate_
     */
    eProsima_user_DllExport float rx_message_lost_rate_() const;

    /*!
     * @brief This function returns a reference to member rx_message_lost_rate_
     * @return Reference to member rx_message_lost_rate_
     */
    eProsima_user_DllExport float& rx_message_lost_rate_();

    /*!
     * @brief This function sets a value in member heartbeat_type_antenna_tracker_
     * @param _heartbeat_type_antenna_tracker_ New value for member heartbeat_type_antenna_tracker_
     */
    eProsima_user_DllExport void heartbeat_type_antenna_tracker_(bool _heartbeat_type_antenna_tracker_);

    /*!
     * @brief This function returns the value of member heartbeat_type_antenna_tracker_
     * @return Value of member heartbeat_type_antenna_tracker_
     */
    eProsima_user_DllExport bool heartbeat_type_antenna_tracker_() const;

    /*!
     * @brief This function returns a reference to member heartbeat_type_antenna_tracker_
     * @return Reference to member heartbeat_type_antenna_tracker_
     */
    eProsima_user_DllExport bool& heartbeat_type_antenna_tracker_();

    /*!
     * @brief This function sets a value in member heartbeat_type_gcs_
     * @param _heartbeat_type_gcs_ New value for member heartbeat_type_gcs_
     */
    eProsima_user_DllExport void heartbeat_type_gcs_(bool _heartbeat_type_gcs_);

    /*!
     * @brief This function returns the value of member heartbeat_type_gcs_
     * @return Value of member heartbeat_type_gcs_
     */
    eProsima_user_DllExport bool heartbeat_type_gcs_() const;

    /*!
     * @brief This function returns a reference to member heartbeat_type_gcs_
     * @return Reference to member heartbeat_type_gcs_
     */
    eProsima_user_DllExport bool& heartbeat_type_gcs_();

    /*!
     * @brief This function sets a value in member heartbeat_type_onboard_controller_
     * @param _heartbeat_type_onboard_controller_ New value for member heartbeat_type_onboard_controller_
     */
    eProsima_user_DllExport void heartbeat_type_onboard_controller_(bool _heartbeat_type_onboard_controller_);

    /*!
     * @brief This function returns the value of member heartbeat_type_onboard_controller_
     * @return Value of member heartbeat_type_onboard_controller_
     */
    eProsima_user_DllExport bool heartbeat_type_onboard_controller_() const;

    /*!
     * @brief This function returns a reference to member heartbeat_type_onboard_controller_
     * @return Reference to member heartbeat_type_onboard_controller_
     */
    eProsima_user_DllExport bool& heartbeat_type_onboard_controller_();

    /*!
     * @brief This function sets a value in member heartbeat_type_gimbal_
     * @param _heartbeat_type_gimbal_ New value for member heartbeat_type_gimbal_
     */
    eProsima_user_DllExport void heartbeat_type_gimbal_(bool _heartbeat_type_gimbal_);

    /*!
     * @brief This function returns the value of member heartbeat_type_gimbal_
     * @return Value of member heartbeat_type_gimbal_
     */
    eProsima_user_DllExport bool heartbeat_type_gimbal_() const;

    /*!
     * @brief This function returns a reference to member heartbeat_type_gimbal_
     * @return Reference to member heartbeat_type_gimbal_
     */
    eProsima_user_DllExport bool& heartbeat_type_gimbal_();

    /*!
     * @brief This function sets a value in member heartbeat_type_adsb_
     * @param _heartbeat_type_adsb_ New value for member heartbeat_type_adsb_
     */
    eProsima_user_DllExport void heartbeat_type_adsb_(bool _heartbeat_type_adsb_);

    /*!
     * @brief This function returns the value of member heartbeat_type_adsb_
     * @return Value of member heartbeat_type_adsb_
     */
    eProsima_user_DllExport bool heartbeat_type_adsb_() const;

    /*!
     * @brief This function returns a reference to member heartbeat_type_adsb_
     * @return Reference to member heartbeat_type_adsb_
     */
    eProsima_user_DllExport bool& heartbeat_type_adsb_();

    /*!
     * @brief This function sets a value in member heartbeat_type_camera_
     * @param _heartbeat_type_camera_ New value for member heartbeat_type_camera_
     */
    eProsima_user_DllExport void heartbeat_type_camera_(bool _heartbeat_type_camera_);

    /*!
     * @brief This function returns the value of member heartbeat_type_camera_
     * @return Value of member heartbeat_type_camera_
     */
    eProsima_user_DllExport bool heartbeat_type_camera_() const;

    /*!
     * @brief This function returns a reference to member heartbeat_type_camera_
     * @return Reference to member heartbeat_type_camera_
     */
    eProsima_user_DllExport bool& heartbeat_type_camera_();

    /*!
     * @brief This function sets a value in member heartbeat_component_telemetry_radio_
     * @param _heartbeat_component_telemetry_radio_ New value for member heartbeat_component_telemetry_radio_
     */
    eProsima_user_DllExport void heartbeat_component_telemetry_radio_(bool _heartbeat_component_telemetry_radio_);

    /*!
     * @brief This function returns the value of member heartbeat_component_telemetry_radio_
     * @return Value of member heartbeat_component_telemetry_radio_
     */
    eProsima_user_DllExport bool heartbeat_component_telemetry_radio_() const;

    /*!
     * @brief This function returns a reference to member heartbeat_component_telemetry_radio_
     * @return Reference to member heartbeat_component_telemetry_radio_
     */
    eProsima_user_DllExport bool& heartbeat_component_telemetry_radio_();

    /*!
     * @brief This function sets a value in member heartbeat_component_log_
     * @param _heartbeat_component_log_ New value for member heartbeat_component_log_
     */
    eProsima_user_DllExport void heartbeat_component_log_(bool _heartbeat_component_log_);

    /*!
     * @brief This function returns the value of member heartbeat_component_log_
     * @return Value of member heartbeat_component_log_
     */
    eProsima_user_DllExport bool heartbeat_component_log_() const;

    /*!
     * @brief This function returns a reference to member heartbeat_component_log_
     * @return Reference to member heartbeat_component_log_
     */
    eProsima_user_DllExport bool& heartbeat_component_log_();

    /*!
     * @brief This function sets a value in member heartbeat_component_osd_
     * @param _heartbeat_component_osd_ New value for member heartbeat_component_osd_
     */
    eProsima_user_DllExport void heartbeat_component_osd_(bool _heartbeat_component_osd_);

    /*!
     * @brief This function returns the value of member heartbeat_component_osd_
     * @return Value of member heartbeat_component_osd_
     */
    eProsima_user_DllExport bool heartbeat_component_osd_() const;

    /*!
     * @brief This function returns a reference to member heartbeat_component_osd_
     * @return Reference to member heartbeat_component_osd_
     */
    eProsima_user_DllExport bool& heartbeat_component_osd_();

    /*!
     * @brief This function sets a value in member heartbeat_component_obstacle_avoidance_
     * @param _heartbeat_component_obstacle_avoidance_ New value for member heartbeat_component_obstacle_avoidance_
     */
    eProsima_user_DllExport void heartbeat_component_obstacle_avoidance_(bool _heartbeat_component_obstacle_avoidance_);

    /*!
     * @brief This function returns the value of member heartbeat_component_obstacle_avoidance_
     * @return Value of member heartbeat_component_obstacle_avoidance_
     */
    eProsima_user_DllExport bool heartbeat_component_obstacle_avoidance_() const;

    /*!
     * @brief This function returns a reference to member heartbeat_component_obstacle_avoidance_
     * @return Reference to member heartbeat_component_obstacle_avoidance_
     */
    eProsima_user_DllExport bool& heartbeat_component_obstacle_avoidance_();

    /*!
     * @brief This function sets a value in member heartbeat_component_vio_
     * @param _heartbeat_component_vio_ New value for member heartbeat_component_vio_
     */
    eProsima_user_DllExport void heartbeat_component_vio_(bool _heartbeat_component_vio_);

    /*!
     * @brief This function returns the value of member heartbeat_component_vio_
     * @return Value of member heartbeat_component_vio_
     */
    eProsima_user_DllExport bool heartbeat_component_vio_() const;

    /*!
     * @brief This function returns a reference to member heartbeat_component_vio_
     * @return Reference to member heartbeat_component_vio_
     */
    eProsima_user_DllExport bool& heartbeat_component_vio_();

    /*!
     * @brief This function sets a value in member heartbeat_component_pairing_manager_
     * @param _heartbeat_component_pairing_manager_ New value for member heartbeat_component_pairing_manager_
     */
    eProsima_user_DllExport void heartbeat_component_pairing_manager_(bool _heartbeat_component_pairing_manager_);

    /*!
     * @brief This function returns the value of member heartbeat_component_pairing_manager_
     * @return Value of member heartbeat_component_pairing_manager_
     */
    eProsima_user_DllExport bool heartbeat_component_pairing_manager_() const;

    /*!
     * @brief This function returns a reference to member heartbeat_component_pairing_manager_
     * @return Reference to member heartbeat_component_pairing_manager_
     */
    eProsima_user_DllExport bool& heartbeat_component_pairing_manager_();

    /*!
     * @brief This function sets a value in member heartbeat_component_udp_bridge_
     * @param _heartbeat_component_udp_bridge_ New value for member heartbeat_component_udp_bridge_
     */
    eProsima_user_DllExport void heartbeat_component_udp_bridge_(bool _heartbeat_component_udp_bridge_);

    /*!
     * @brief This function returns the value of member heartbeat_component_udp_bridge_
     * @return Value of member heartbeat_component_udp_bridge_
     */
    eProsima_user_DllExport bool heartbeat_component_udp_bridge_() const;

    /*!
     * @brief This function returns a reference to member heartbeat_component_udp_bridge_
     * @return Reference to member heartbeat_component_udp_bridge_
     */
    eProsima_user_DllExport bool& heartbeat_component_udp_bridge_();

    /*!
     * @brief This function sets a value in member heartbeat_component_uart_bridge_
     * @param _heartbeat_component_uart_bridge_ New value for member heartbeat_component_uart_bridge_
     */
    eProsima_user_DllExport void heartbeat_component_uart_bridge_(bool _heartbeat_component_uart_bridge_);

    /*!
     * @brief This function returns the value of member heartbeat_component_uart_bridge_
     * @return Value of member heartbeat_component_uart_bridge_
     */
    eProsima_user_DllExport bool heartbeat_component_uart_bridge_() const;

    /*!
     * @brief This function returns a reference to member heartbeat_component_uart_bridge_
     * @return Reference to member heartbeat_component_uart_bridge_
     */
    eProsima_user_DllExport bool& heartbeat_component_uart_bridge_();

    /*!
     * @brief This function sets a value in member avoidance_system_healthy_
     * @param _avoidance_system_healthy_ New value for member avoidance_system_healthy_
     */
    eProsima_user_DllExport void avoidance_system_healthy_(bool _avoidance_system_healthy_);

    /*!
     * @brief This function returns the value of member avoidance_system_healthy_
     * @return Value of member avoidance_system_healthy_
     */
    eProsima_user_DllExport bool avoidance_system_healthy_() const;

    /*!
     * @brief This function returns a reference to member avoidance_system_healthy_
     * @return Reference to member avoidance_system_healthy_
     */
    eProsima_user_DllExport bool& avoidance_system_healthy_();


    /*!
     * @brief This function returns the maximum serialized size of an object
     * depending on the buffer alignment.
     * @param current_alignment Buffer alignment.
     * @return Maximum serialized size.
     */
    eProsima_user_DllExport static size_t getMaxCdrSerializedSize(size_t current_alignment = 0);

    /*!
     * @brief This function returns the serialized size of a data depending on the buffer alignment.
     * @param data Data which is calculated its serialized size.
     * @param current_alignment Buffer alignment.
     * @return Serialized size.
     */
    eProsima_user_DllExport static size_t getCdrSerializedSize(const telemetry_status& data, size_t current_alignment = 0);


    /*!
     * @brief This function serializes an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void serialize(eprosima::fastcdr::Cdr &cdr) const;

    /*!
     * @brief This function deserializes an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void deserialize(eprosima::fastcdr::Cdr &cdr);



    /*!
     * @brief This function returns the maximum serialized size of the Key of an object
     * depending on the buffer alignment.
     * @param current_alignment Buffer alignment.
     * @return Maximum serialized size.
     */
    eProsima_user_DllExport static size_t getKeyMaxCdrSerializedSize(size_t current_alignment = 0);

    /*!
     * @brief This function tells you if the Key has been defined for this type
     */
    eProsima_user_DllExport static bool isKeyDefined();

    /*!
     * @brief This function serializes the key members of an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void serializeKey(eprosima::fastcdr::Cdr &cdr) const;

private:
    uint64_t m_timestamp_;
    uint8_t m_type_;
    uint8_t m_mode_;
    bool m_flow_control_;
    bool m_forwarding_;
    bool m_mavlink_v2_;
    bool m_ftp_;
    uint8_t m_streams_;
    float m_data_rate_;
    float m_rate_multiplier_;
    float m_tx_rate_avg_;
    float m_tx_error_rate_avg_;
    uint32_t m_tx_message_count_;
    uint32_t m_tx_buffer_overruns_;
    float m_rx_rate_avg_;
    uint32_t m_rx_message_count_;
    uint32_t m_rx_message_lost_count_;
    uint32_t m_rx_buffer_overruns_;
    uint32_t m_rx_parse_errors_;
    uint32_t m_rx_packet_drop_count_;
    float m_rx_message_lost_rate_;
    bool m_heartbeat_type_antenna_tracker_;
    bool m_heartbeat_type_gcs_;
    bool m_heartbeat_type_onboard_controller_;
    bool m_heartbeat_type_gimbal_;
    bool m_heartbeat_type_adsb_;
    bool m_heartbeat_type_camera_;
    bool m_heartbeat_component_telemetry_radio_;
    bool m_heartbeat_component_log_;
    bool m_heartbeat_component_osd_;
    bool m_heartbeat_component_obstacle_avoidance_;
    bool m_heartbeat_component_vio_;
    bool m_heartbeat_component_pairing_manager_;
    bool m_heartbeat_component_udp_bridge_;
    bool m_heartbeat_component_uart_bridge_;
    bool m_avoidance_system_healthy_;
};

#endif // _TELEMETRY_STATUS_H_